home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 November: Tool Chest / Dev.CD Nov 94.toast / Sample Code / Snippets / Files / GetFInfo ƒ / PBHGetFInfo.c next >
Encoding:
Text File  |  1992-07-15  |  3.1 KB  |  96 lines  |  [TEXT/MPS ]

  1. //
  2. // MPW Tool
  3. // Usage : PBHGetFInfo [-i index] [-f fileName] [-v vRefNum] [-x version]
  4. // 
  5.  
  6. #include    <Files.h>
  7. #include    <stdio.h>
  8. #include    <string.h>
  9.  
  10. HParamBlockRec    pb;
  11. Str255            fileName;
  12.  
  13. main (int argc, char *argv[], char *envp[]) {
  14.     
  15.         auto    OSErr    osErr;
  16.         auto    short    index;
  17.         auto    char    *option, *parameter;
  18.         
  19.         InitGraf((Ptr) &qd.thePort);
  20.  
  21.         pb.fileParam.ioNamePtr        = fileName;
  22.         pb.fileParam.ioVRefNum        = 0;
  23.         pb.fileParam.ioFDirIndex    = 0;
  24.  
  25.         index = 1;
  26.         while (index < argc) {
  27.         
  28.             option = argv[index++];
  29.             parameter = argv[index++];
  30.             
  31.             if ('-' != option[0] || (! strchr("idfrx", option[1])) || index > argc) {
  32.                 printf("PBHGetFInfo [-i index] [-d dirID] [-f fileName] [-v vRefNum] [-x version]");
  33.                 exit(1);
  34.             } else {
  35.                 switch (option[1]) {
  36.                     case 'i' :
  37.                         sscanf(parameter, "%hd", &pb.fileParam.ioFDirIndex);
  38.                         break;
  39.                     case 'd' :
  40.                         sscanf(parameter, "%ld", &pb.fileParam.ioDirID);
  41.                         break;
  42.                     case 'f' :
  43.                         parameter = (char *) c2pstr(parameter);
  44.                         pb.fileParam.ioNamePtr = parameter;
  45.                         break;
  46.                     case 'v' :
  47.                         sscanf(parameter, "%hd", &pb.fileParam.ioVRefNum);
  48.                         break;
  49.                     case 'x' :
  50.                         sscanf(parameter, "%hd", &pb.fileParam.ioFVersNum);
  51.                         break;
  52.                 }
  53.             }            
  54.         }
  55.         
  56.     //    printf("ioFDirIndex        = %hd\n",     pb.fileParam.ioFDirIndex);
  57.     //    printf("ioDirID            = %ld\n",     pb.fileParam.ioDirID);
  58.     //    printf("ioNamePtr        = %P\n",    pb.fileParam.ioNamePtr);
  59.     //    printf("ioVRefNum        = %hd\n",     pb.fileParam.ioVRefNum);
  60.     //    printf("ioFVersNum        = %hd\n",     pb.fileParam.ioFVersNum);
  61.         
  62.         osErr = PBHGetFInfo(&pb, false);
  63.         
  64.         if (noErr != osErr) {
  65.             printf("osErr            = %d\n",    osErr);
  66.         } else {
  67.             printf("ioResult        = %hd\n",    pb.fileParam.ioResult);
  68.             printf("ioNamePtr        = %P\n",    pb.fileParam.ioNamePtr);
  69.             printf("ioVRefNum        = %hd\n",     pb.fileParam.ioVRefNum);
  70.             
  71.             printf("ioFRefNum        = %hd\n",     pb.fileParam.ioFRefNum);
  72.             printf("ioFVersNum        = %hd\n",     (short)pb.fileParam.ioFVersNum);
  73.             printf("ioFDirIndex        = %hd\n",     pb.fileParam.ioFDirIndex);
  74.             printf("ioFlAttrib        = %hd\n",     (short)pb.fileParam.ioFlAttrib);
  75.             printf("ioFlVersNum        = %hd\n",     (short)pb.fileParam.ioFlVersNum);
  76.             
  77.             printf("ioFlFndrInfo.\n");
  78.             printf(" fdType            = %c%c%c%c\n",     pb.fileParam.ioFlFndrInfo.fdType);
  79.             printf(" fdCreator        = %c%c%c%c\n",     pb.fileParam.ioFlFndrInfo.fdCreator);
  80.             printf(" fdFlags        = %hu\n",     pb.fileParam.ioFlFndrInfo.fdFlags);
  81.             printf(" fdLocation.h    = %hd\n",     pb.fileParam.ioFlFndrInfo.fdLocation.h);
  82.             printf(" fdLocation.v    = %hd\n",     pb.fileParam.ioFlFndrInfo.fdLocation.v);
  83.             printf(" fdFldr            = %hd\n",     pb.fileParam.ioFlFndrInfo.fdFldr);
  84.             
  85.             printf("ioDirID            = %ld\n",     pb.fileParam.ioDirID);
  86.             printf("ioFlStBlk        = %hu\n",     pb.fileParam.ioFlStBlk);
  87.             printf("ioFlLgLen        = %ld\n",     pb.fileParam.ioFlLgLen);
  88.             printf("ioFlPyLen        = %ld\n",     pb.fileParam.ioFlPyLen);
  89.             printf("ioFlRStBlk        = %hu\n",     pb.fileParam.ioFlRStBlk);
  90.             printf("ioFlRLgLen        = %ld\n",     pb.fileParam.ioFlRLgLen);
  91.             printf("ioFRPyLen        = %ld\n",     pb.fileParam.ioFlRPyLen);
  92.             printf("ioFlCrDat        = %lu\n",     pb.fileParam.ioFlCrDat);
  93.             printf("ioFlMdDat        = %lu\n",     pb.fileParam.ioFlMdDat);
  94.         }
  95. }
  96.